/**
 * Created with IntelliJ IDEA
 * Description
 * User:user
 * Date:2021-10-21
 * Time:16:53
 */
class Node{
    public int val;
    public Node next;//指向下一个节点的地址,默认是null
    public Node(int val){
        this.val = val;
    }
}
public class MyLinkedList {

    public Node head;//单链表的头结点的引用

    //穷举法创建链表
    public void createLinkedList(){
        //node1存储的就是地址
        Node node1 = new Node(12);
        Node node2 = new Node(13);
        Node node3 = new Node(14);
        Node node4 = new Node(15);
        //node1的next域存放node2的地址
        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        this.head = node1;
    }
//node1.next=？   把某个值写进去，左值写进去 a = 10
//？ = node1.next 读，右值 b = a;

    //如何遍历链表‘
    public void show(){
        Node cur = this.head;
        while(cur != null){
            System.out.print(cur.val+" ");
            cur=cur.next;
        }
    }

    //获取链表的大小
    public int getSize(){
        Node cur = this.head;
        int count = 0;
        while(cur != null ){
            count++;
            cur = cur.next;
        }
        return count;
    }

    //链表的所有题都是靠遍历实现的

/*
    //链表
    逻辑上相邻但是物理上不一定相邻
            用一个申请一个
    频繁的插入和删除
    链表的种类： 单链表 不带头结点 非循环

    单链表 带头结点    循环
    单链表 不带头结点  循环
    单链表 带头结点    不循环
    单链表 不带头结点  不循环

    双链表 带头结点    循环
    双链表 不带头结点  循环
    双链表 带头结点    不循环
    双链表 不带头结点  不循环

    结点包含：val数据 next下一个结点的地址


    头结点：数据域中不存放数据  数据域中的数据没有意义 这个头结点是不动的
    把最后一个的next域设置为第一个结点的地址，则为循环

            带环的是指最后一个结点的next域为中间的某个结点

    head指针表示的是这个head是可以移动的，添加元素或者是删除元素都需要移动head
*/

//使用穷举的方式创建链表

}
